package cn.edu.gduf.luowowo.scenic.service;


import cn.edu.gduf.luowowo.scenic.domain.ScenicDetial;
import cn.edu.gduf.luowowo.scenic.query.ScenicQuery;
import com.github.pagehelper.PageInfo;

import java.util.List;

/**
 * 景点的明细服务
 */
public interface IScenicDetialService {
    /**
     * 景点分类明细列表查询
     * @return
     */
    List<ScenicDetial> list();

    ScenicDetial get(Long id);

    /**
     * 通过景点的分类 id查询排名前5的景点明细 以及内部景点
     * @param scId 景点的分类
     * @return
     */
    List<ScenicDetial> queryTop5ByScDetialId(Long scId);

    /**
     * 通过景点的分类 查询 10个热门景点
     * @param scId
     * @return
     */
    List<ScenicDetial> queryTop10ByScDetialId(Long scId);

    /**
     * 查询全部 分类下的景点
     * @param qo
     * @return
     */
    PageInfo query(ScenicQuery qo);

    /**
     * 通过明细id查询 景点的明细
     * @param detialId
     * @return
     */
    ScenicDetial queryScDetialByDetialId(Long detialId);

    /**
     * 根据景点的 id 查询该景点下的内部景点
     * @param id 景点的id
     * @return
     */
    List<ScenicDetial> queryInsideScById(Long id);

    /**
     * 景点的收藏数的添加/减少
     * @param scId 景点的id
     * @param num 数量
     */
    void addFavorNum(Long scId, int num);

    /**
     * 查询单个景点
     * @param scId
     * @return
     */
    ScenicDetial selectByPrimaryKey(Long scId);

    /**
     * 同一景点的去过人数的改变
     * @param scid 景点的id
     * @param num 变化的数量
     */
    void addBeenNum(Long scid, int num);

    ScenicDetial queryDetailById(Long scenicId);
}
